Software applications, such as virtual machines (VMs), may be executed by a group, or “cluster,” of host computing devices. Each VM creates an abstraction of physical computing resources, such as a processor and memory, of the host executing the VM and executes a “guest” operating system, which, in turn, executes one or more software applications. The abstracted resources may be functionally indistinguishable from the underlying physical resources to the guest operating system and software applications.
At least some host computing devices are connected together to form one or more networks. In addition, some network architectures include a large number of computing devices connected together to form complex network topologies. Such network architectures increase a cost and/or a complexity of managing networks built on the network architectures. Due to the complexity and size of such network architectures, the network architectures may change, experience instabilities, and/or become misconfigured. The complexity of the network architectures also increases an amount of effort required to identify computing devices, applications, and resources within a network. To properly configure such networks for use in cloud computing and/or datacenter environments, significant amounts of time and money are often expended.
For example, applications executing within the computing devices of the network may spend significant amounts of time discovering the existence and/or addresses of other applications within the network. The applications may cause additional traffic to be transmitted through the network to discover information about other applications, which may decrease an efficiency of the network. The decrease in efficiency and the increased amount of time spent discovering other applications may reduce an amount of revenue generated by the computing devices within the network.